package com.chushouya.product.service.admin;

import com.general.framework.core.schema.PageResult;
import com.chushouya.product.dto.admin.attribute.AttributeItemDetailDTO;
import com.chushouya.product.dto.admin.attribute.AttributeItemListDTO;
import com.chushouya.product.dto.admin.attribute.AttributeItemQuery;
import com.chushouya.product.dto.admin.attribute.AttributeItemSaveDTO;
import com.chushouya.product.dto.admin.attribute.AttributeItemUpdateDTO;

import java.util.List;

/**
 * SKU属性业务
 */
public interface AttributeItemService {

    /**
     * 分页查询SKU属性
     * @param query 参数
     * @return 分页对象
     */
    PageResult<AttributeItemListDTO> selectAttributeItemPageResult(AttributeItemQuery query);

    /**
     * 查询SKU属性列表
     * @param query 参数
     * @return 列表
     */
    List<AttributeItemListDTO> selectAttributeItemList(AttributeItemQuery query);

    /**
     * 根据ID查询SKU属性
     * @param attrItemId SKU属性ID
     * @return SKU属性详情
     */
    AttributeItemDetailDTO getAttributeItemDetail(Long attrItemId);

    /**
     * 新增SKU属性
     * @param attributeItem SKU属性
     * @return ID
     */
    Long addAttributeItem(AttributeItemSaveDTO attributeItem);

    /**
     * 修改SKU属性
     * @param attributeItem SKU属性
     * @return ID
     */
    Long editAttributeItem(AttributeItemUpdateDTO attributeItem);

    /**
     * 删除SKU属性
     * @param attrItemId SKU属性ID
     */
    void removeAttributeItem(Long attrItemId);

    /**
     * 根据分类ID查询SKU属性列表
     * @param categoryId 分类ID
     * @return 列表
     */
    List<AttributeItemListDTO> selectAttributeItemListByCategoryId(Long categoryId);
}
